import tokenize
import io
import sys

def tokenize_string(code_str):
    # 将字符串编码为 bytes，并包装成 BytesIO 对象
    code_bytes = code_str.encode('utf-8')
    code_stream = io.BytesIO(code_bytes)
    
    # 使用 tokenize.tokenize 生成 tokens
    tokens = tokenize.tokenize(code_stream.readline)
    
    for token in tokens:
        print(token)

if __name__ == '__main__':
    print("请输入一段 Python 代码（输入结束后按 Ctrl+D 或 Ctrl+Z 提交）：")
    try:
        # 读取多行输入直到 EOF
        code_input = sys.stdin.read()
    except KeyboardInterrupt:
        print("\n输入被中断。")
        sys.exit(0)
    
    if not code_input.strip():
        print("未输入任何内容。")
    else:
        tokenize_string(code_input)
